﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using ForrajeriaDAL;
using ForrajeriaDB;

namespace ForrajeriaBCL
{
    public class TipoDocumentoBCL : InterfaceBCL<TipoDocumentoMO>
    {
        private TipoDocumentoDAL tipodocDAL;
        public TipoDocumentoBCL()
        {
            tipodocDAL = TipoDocumentoDAL.Instance; //consumiendo patron SINGLETON
        }
        public List<TipoDocumentoMO> GetAll()
        {
            try
            {

                return tipodocDAL.GetAll();
            }
            catch (Exception ex)
            {
                throw ex;
            }

        }

        public string Adicionar(TipoDocumentoMO item)
        {
            try
            {
                tipodocDAL.Adicionar(item);
                return "1";
            }
            catch (Exception ex)
            {
                return "Error de Escritura en Base de Datos";
            }
            
        }

        public string Eliminar(TipoDocumentoMO item)
        {
            try
            {
                tipodocDAL.Eliminar(item);
                return "1";
            }
            catch (Exception ex)
            {
                if (ex.Message.ToString().Contains("conflicto con la restricción REFERENCE")) //si esta subcadena es encontrada quiere decir q hay una RESTRICCION DE CLAVE FORANEA EN RELACION A ESA TUPLA! 
                return "No es Posible eliminar ya que Existen dependencias Con otras tablas de la base de datos!";
                else
                return "Error al Intentar Eliminar";
            }

        }

        public string Actualizar(TipoDocumentoMO itemNuevo, TipoDocumentoMO itemViejo)
        {
            try
            {
                tipodocDAL.Actualizar(itemNuevo, itemViejo);
                return "1";
            }
            catch (Exception ex)
            {
                return "Error Al modificar el Tipo Documento";
            }


        }
    }
}
